描述
考虑一个十进制整数数组,我们要根据以下规则重新排列数组:
注意
按二进制表示中的1个数对整数升序排序。
二进制表示中具有相同数量1的元素按照十进制值升序排序。
样例
1
输入:[12, 10, 7, 5, 6]
输出:[5,6,10,12,7]
解释:最初数组[12, 10, 7, 5, 6] = [1100,1010,0111,0101,0110],最终数组[0101,0110,1010,1100,0111] = [5,6,10,12,7]
2
输入:[7, 8, 6, 5]
输出:[8, 5, 6, 7]
解释:最初数组[7, 8, 6, 5] = [0111, 1000, 0110, 0101],最终数组[1000, 0101, 0110, 0111] = [8, 5, 6, 7]
思路
将十进制转换为二进制,然后比较字符串,最后sort
代码
1 | class Solution { |
-------------end of filethanks for reading-------------